package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import models.Turma;
import models.Veiculo;
import play.db.DB;
import utils.exceptions.BDException;

public class VeiculoDao {		
	
	public boolean inserirVeiculo(Veiculo _veiculo){
		boolean retorno = false;
		String sql ="INSERT INTO veiculo (marca, modelo, placa, ano) VALUES ('"+_veiculo.getMarca()+"','"+_veiculo.getModelo()+"','"+_veiculo.getPlaca()+"','"+_veiculo.getAno()+"')"; 
		retorno = DB.execute(sql);	
		DB.close();
		return retorno;
	}
	
	public List<Veiculo> listarTodos() {
		List<Veiculo> retorno = new ArrayList<Veiculo>();
		
		String sql = "select marca, modelo, placa, ano from veiculo";
		
		try {			
			ResultSet rs = DB.executeQuery(sql);
			
			while(rs.next()){
				Veiculo veiculo = new Veiculo();
				veiculo.setMarca(rs.getString("marca"));
				veiculo.setModelo(rs.getString("modelo"));
				veiculo.setPlaca(rs.getString("placa"));
				veiculo.setAno(rs.getInt("ano"));
			
				retorno.add(veiculo);
			}
		} catch (SQLException e) {			
			//throw new BDException("Ocorreu ao INSERIR a Veiculo!", e.getStackTrace());			
		}
		DB.close();
		return retorno;
	}
	
	public Veiculo buscarVeiculo (String placa) throws BDException {
		String sql = "select * from veiculo where placa='"+placa+"'";
		
		try {			
			ResultSet rs = DB.executeQuery(sql);
			
			while(rs.next()){
				Veiculo veiculo = new Veiculo();				
				
				veiculo.setMarca(rs.getString("marca"));
				veiculo.setModelo(rs.getString("modelo"));
				veiculo.setPlaca(rs.getString("placa"));
				veiculo.setAno(rs.getInt("ano"));
				DB.close();
				return veiculo;
			}
			
		} catch (SQLException e) {
			
			throw new BDException("Ocorreu ao BUSCAR uma Turma.",e.getStackTrace());
		}
		DB.close();
		return null;
	}
	
	public boolean excluir(String _placa) throws BDException {
		boolean retorno = false;

		String sql = "delete from veiculo where placa='"+_placa+"'";
		DB.execute(sql); 
		retorno = true;
		
		DB.close();
		return retorno;
	}
	
	
	public boolean editarVeiculo(Veiculo _veiculo) throws BDException{
		boolean retorno = false;

		String sql = "update veiculo set marca='"+_veiculo.getMarca()+"', modelo='"+_veiculo.getModelo()+"', ano='"+_veiculo.getAno()+"' where placa='"+_veiculo.getPlaca()+"'";
		
		DB.execute(sql); 
		retorno = true;
		
		DB.close();
		return retorno;
		
	}


}
